package cn.yuyiling.jelly.sr.api;

import cn.yuyiling.jelly.sr.mongodb.entity.ReviewSchedule;

import java.time.LocalDateTime;
import java.util.List;

public interface ReviewScheduleService {
    // 创建初始复习计划
    ReviewSchedule createReviewSchedule(String userId, String knowledgePointId);

    // 根据复习次数获取艾宾浩斯间隔天数
    int getEbbinghausIntervalDays(int reviewCount);

    // 更新复习记录
    ReviewSchedule updateReviewRecord(String scheduleId, LocalDateTime actualReviewTime);

    // 获取用户的复习计划
    List<ReviewSchedule> getReviewSchedulesByUser(String userId);

    // 获取需要复习的知识点
    List<ReviewSchedule> getDueReviews(String userId, LocalDateTime checkTime);

    // 计算复习间隔
    List<LocalDateTime> calculateReviewPlan(LocalDateTime startTime);
}